package 反转链表;

class ListNode {
    int val;
    ListNode next;

    ListNode(int x) {
        val = x;
    }
}

//class Solution {
//    public ListNode reverseList(ListNode head) {
//        if (head == null || head.next == null) {
//            return head;
//        }
//        ListNode prve = null, cur = head;
//        while (cur != null) {
//            ListNode tmp = cur.next;
//            cur.next = prve;
//            prve = cur;
//            cur = tmp;
//        }
//        return prve;
//    }
//}

class Solution {
    public ListNode reverseList(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode ret = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return ret;
    }
}
